package commons

import (
	"strings"
	"time"
	"strconv"
	"regexp"
	"sort"
)

func IsUserLen(s string, length int) bool {
	v := strings.TrimSpace(s)
	match, _ := regexp.MatchString(".*?<\\?|\\?>|>|\\(", v)

	if match {
		return false
	}
	if v != "" && len(v) >= length {
		return true
	}
	return false
}

func BinarySearch(s []string, m string) int {
	//fmt.Printf("%v , %v", s, m)
	//针对对字符串
	if !IsUserLen(m, 1) {
		return -1
	}
	//_k := m[1 : len(m)-1]
	//k, _ := strconv.Atoi(m)
	ints := sort.SearchStrings(s, m)
	if ints == len(s) {
		return -1
	} else {
		return ints
	}
	//lo, hi := 0, len(s)-1
	//for lo <= hi {
	//	m := (lo + hi) >> 1
	//	if s[m] < k {
	//		lo = m + 1
	//	} else if s[m] > k {
	//		hi = m - 1
	//	} else {
	//		return m
	//	}
	//}
	//return -1
}

/**
	检验时间
 */
func IsYMDTime(s string) bool {
	match, _ := regexp.MatchString(".*?<\\?|\\?>|>|\\(", s)

	if match {
		return false
	}

	tm2, err := time.Parse("2006-01-02", s)
	if !CheckErr(err) {
		return false
	}
	a := tm2.Unix()

	if len(strconv.FormatInt(a, 10)) == 11 {
		return true
	} else {
		return false
	}
}

/**
	字符串转int
 */
func IsAtoi(s string, a int) int {
	i, err := strconv.Atoi(s)

	if err != nil {
		return -1
	} else if i > a {
		return 50
	} else {
		return i
	}
}
